import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

import * as directives from '@/directives' // 解决多个自定义指令导入问题
import * as filters from '@/filters' // 引入过滤工具集合文件
import Components from '@/components' // 引入自定义的全局注册组件
import COS from 'cos-js-sdk-v5'
import checkPermission from '@/mixin/checkPermission' // 引入混入方法
import i18n from '@/lang'
// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value) // $t 方法会去对应的语言包里寻找对应的内容
})
// 注册全局自定义指令
// Vue.directive('指令名称', {
//   inserted: function(dom, options) {}
// })

// 解决多个自定义指令注册问题
// console.log(directives) // 封装的自定义指令的对象集合
// console.log(Object.keys(directives)) // 遍历对象，得到的是一个数组
Object.keys(directives).forEach((key, value) => {
  // console.log(key, directives[key]) // key 是遍历出来的自定义指令名称
  Vue.directive(key, directives[key])
})

// 全局注册所有过滤工具
// console.log(Object.keys(filters))
Object.keys(filters).forEach(key => {
  // console.log(key)
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false
// 注册自定义的全局组件
Vue.use(Components)

//  COS SDK 实例 前端使用固定密钥计算签名
var cos = new COS({
  SecretId: 'AKIDmMhneFagYAXeW8UbS494kDSSEm6E8wXx', // 身份识别 ID
  SecretKey: 'KUTIySjlbDbliRxEH5f070e5HI8mFZgd' // 身份密钥
})
Vue.prototype.cos = cos // 挂载cos到vue实例
Vue.mixin(checkPermission) // 全局注册mixin混入方法 表示所有组件都拥有了检查方法
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
